/**
 * 项目名称: 平衡二叉树.cpp
 * 项目路径: study/DataStructure/数据结构/查找/树形查找
 * 编辑时间: 2024年08月20日10时04分14秒
 * 用   户: 轻尘
 */

#include <bits/stdc++.h>

using namespace std;

//平衡二叉树结点
struct AVLNode{
    int key;//数据域
    int balance;//平衡因子
    struct AVLNode *lchild,*rchild;
};

struct BSTNode {
    int val;
    BSTNode *left;
    BSTNode *right;

    BSTNode() : val(0), left(nullptr), right(nullptr) {}

    BSTNode(int x) : val(x), left(nullptr), right(nullptr) {}

    BSTNode(int x, BSTNode *left, BSTNode *right) : val(x), left(left), right(right) {}
};

/**
 * 平衡二叉树构建
 * @param T
 * @param left
 * @param right
 * @param vn
 */
void BST_Insert(BSTNode *&T,int left,int right,vector<int>vn){
    if(left > right)return;
    int mid = (left+right)/2;
    T = new BSTNode;
    T->val = vn[mid];
    BST_Insert(T->left,left,mid-1,vn);
    BST_Insert(T->right,mid+1,right,vn);
}

int main(){
    vector<int>vn;
    BSTNode * T;
    BST_Insert(T,0,vn.size()-1,vn);
}
